This invention relates generally to data storage, and more particularly to providing an administrator for logical volumes within a storage network.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawing hereto: Copyright(copyright) 1999, Microsoft Corporation, All Rights Reserved.
As computer systems have evolved so has the availability and configuration of data storage devices, such as magnetic or optical disks. For example, these storage devices can be connected to the computer system via a bus, or they can be connected to the computer system via a wired or wireless network. In addition, the storage devices can be separate or co-located in a single cabinet.
A storage volume is a software abstraction of the underlying storage devices and is the smallest self-contained unit of storage mounted by an operating system and administered by a file system. Storage volumes abstract the physical topology of the storage devices and may be a fraction of a disk, a whole disk or even multiple disks that are bound into a virtually contiguous range of logical blocks. This binding may increase the fault tolerance, performance, or capacity characteristics of the underlying storage devices.
One technique for improving fault tolerance, known as mirroring or plexing a disk, uses multiple disks. When data is written to one disk the data is also written to a second disk; thus the second disk is a xe2x80x9cmirror imagexe2x80x9d of the first disk. If one disk should fail the second disk is still available for use and has an exact copy of the information on the first disk.
Volumes are constructed from one or more extents that are contiguous storage address spaces presented by the underlying storage devices. An extent is typically characterized by the size of the address space and a starting offset for the address space from a base of the media. Volume mapping is the process of mapping the contiguous address space presented by the volume onto the non-contiguous storage address spaces of the underlying extents. Volume mappings are either implemented on a specialized hardware controller, referred to as a hardware volume provider, or in software by a software volume provider.
Conventional volume providers are configured and managed with unique, vendor-specific tools. Each provider typically uses a proprietary protocol for communicating between the storage device and the driver. These unique applications make it difficult for an administrator to manage a system having multiple storage devices. For example, consider two RAID storage cabinets from different vendors that are combined to form a single, striped volume. A first vendor-specific volume management tool is often required to configure the disks within the first RAID cabinet while a completely different tool is required to configure the disks within the second cabinet. In addition, a third tool is required to combine the two storage cabinets to form a volume. Therefore, there is a need in the art for a mechanism for uniformly configuring and coordinating multiple volume providers.
The above-mentioned shortcomings, disadvantages and problems are addressed by the present invention. In one aspect, the invention is a storage management system in which a plurality of volume providers map logical storage volumes onto one or more storage devices of a storage network. A common volume manager executing on a computer within the storage network selectively communicates commands to one or more of the volume providers in order to control the storage devices. In this manner, the inventive storage management system seamlessly integrates management of multiple volume providers. The common volume manager provides a common application programming interface (API) by which applications are able to control and monitor hardware and software volume providers without requiring detailed knowledge of the volume providers or the underlying storage devices. The interface is extensible so as to support provider-specific storage management requests. In one aspect the interface conforms to a Component Object Model (COM) interface.
In another aspect, the invention is a method for managing the plurality of volume providers. According to the method, a storage management request is received from a software application. One or more commands are generated as a function of the received storage management request. The generated commands are then selectively communicated to one or more of the volume providers. In one aspect the method further includes aggregating response information from the volume providers and communicating the aggregated information to the software application that issued the storage management request.